#pragma once

#include "Entity.h"

class Player : public Entity
{
public:
	Player();
	~Player();

	virtual int GetType(void) const override { return ENT_PLAYER; }

	virtual void Update(float elapsedTime) override;
	virtual void Render(void) override;
	virtual void HandleCollision(const IEntity* pOther)	override;
	void Dash();


protected:

	float m_fFireRate;
	float m_fSpeed;
	float m_fPheremoneTimer;
	
	int m_nHealth;
	int m_nDamage;
	int m_nEnergyRegen;
	int m_nEnergy;
	
	bool m_bIsStunned;
	bool m_bIsPinned;
	bool m_bIsShooting;
	bool m_bIsPheremoned;
	
	SGD::HAudio m_hDeathSound;
	SGD::HAudio m_hHurtSound;
	SGD::HAudio m_hPinSound;
	SGD::HAudio m_hDownSound;
	SGD::HAudio m_hDashSound;
	SGD::HAudio m_hReviveSound;

	SGD::HTexture m_hBeamAbility;
	SGD::HTexture m_hNovaAbility;

	int m_nBeamCost;
	int m_nNovaCost;
	int m_nBeamDamage;
	int m_nNovaDamage;
};

